Collaborative streaning of video content

ABSTRACT

A system, method and various user interfaces enable visually browsing multiple groups of video recommendations. A video stream includes a group of videos to be viewed and commented by users who join the stream. Users who join a stream form a stream community. In a stream community, community members can add videos to the stream and interact collaboratively with others community members, such as chatting in real time with each other while viewing a video. With streams, a user can create a virtual room in an online video content distribution environment to watch videos of the streams and interact with others while sharing videos simultaneously. Consequently, users have an enhanced video viewing and sharing experience.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional PatentApplication No. 60/873,538, filed on Dec. 6, 2006, entitled“COLLABORATIVE STREAMING OF VIDEO CONTENT” which is incorporated byreference in its entirety. This application also claims the benefit ofU.S. Provisional Patent Application No. 60/875,670, filed on Dec. 18,2006, entitled “COLLABORATIVE STREAMING OF VIDEO CONTENT” which isincorporated by reference in its entirety.

BACKGROUND

1. Field of Art

The present invention relates generally to web-based video viewing andspecifically to collaborative viewing of video in an online videocontent distribution system.

2. Description of the Related Art

The expansion of networked video viewing provides users with richopportunities to upload, watch and share videos in fast-growing onlinevideo entertainment communities. On average, many thousands of videosare posted every day, and this number is increasing as the tools andopportunities for capturing video become easier to use and morewidespread. Video viewing sites such as YOUTUBE allow content suppliersto upload video easily, automatically converting from many differentformats, and to tag uploaded videos with keywords. Users can easilyshare videos by mailing links to others, or embedding them on web pagesor in blogs. Users can also rate and comment on videos, bringing newsocial aspects to video viewing. Consequently, videos are no longerindependent from each other, and neither are users in an online videosharing environment.

Videos are typically viewed at a video hosting website such as YOUTUBE.Users browsing the video hosting website can find videos of interest by,for example, searching for videos, browsing video directories, orsorting videos by ratings assigned to the videos. Some video hostingsites allow users to create a video viewing channel associated with apersonal account on the hosting website to upload videos, create videoplaylists, look at comments posted by other viewers, and other videoviewing activities. Conventionally, an individual video viewing channelis preserved for the associated account holder with limited socialinteractions with other users. However, a conventional video viewingchannel is not well suited for interactive video viewing and sharing.

SUMMARY

The present invention enables collaborative viewing of video content,including a method, system, and computer program product that receives acommand from a client computer requesting collaborative video viewingservice and provides the collaborative video viewing service.Embodiments of the collaborative video viewing method include receivinga command from a client computer, obtaining a video stream based on thecommand and providing a collaborative video viewing service to theclient computer through the video stream. Embodiments of thecollaborative video viewing system include a stream collaborationsystem, at least a stream collaboration module and a stream managementmodule executed by the stream collaboration system, and a plurality ofclient computers. The stream collaboration module monitors user eventsassociated with a plurality of video streams. The stream collaborationmodule further allows a client computer to create a video stream and addthe newly created stream into the system. The stream management modulemanages videos of a stream, including adding videos to the stream,rating videos of the stream, deleting videos of the stream and addingusers to real-time chatting service associated with the stream. Thestream management module also manages client computers that join astream, including temporarily or permanently banning a client computerfrom the collaborative video viewing service. Embodiments of thecollaborative video viewing computer program product include a receivingmodule for receiving a command from a client computer, obtaining a videostream based on the command and providing collaborative video viewingservice to the client computer.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 is a block diagram of an environment having a collaborative videostreaming system according to one embodiment.

FIG. 2 is a web page implementing an exemplary interface ofcollaborative streaming video content according to one embodiment.

FIG. 3 is a block diagram illustrating modules within a streamcollaboration module according to one embodiment.

FIG. 4 is a block diagram illustrating modules within a streammanagement module according to one embodiment.

FIGS. 5A and 5B illustrate a web page implementing an exemplaryinterface of managing an individual video stream according to oneembodiment.

FIG. 6 illustrates a web page implementing an exemplary interface ofmanaging videos in a stream according to one embodiment.

FIG. 7A illustrates a web page implementing an exemplary interface ofmanaging stream library in a stream according to one embodiment.

FIG. 7B illustrates a web page implementing an exemplary interface ofinviting other users to a stream according to one embodiment.

FIG. 7C illustrates a web page implementing an exemplary interface ofmanaging real-time video commenting in a stream according to oneembodiment.

FIG. 7D illustrates an exemplary interface for managing users in astream according to one embodiment.

FIGS. 8A and 8B illustrate an exemplary interface for creating/editing avideo stream according to one embodiment.

FIG. 9 illustrates a general process flow of using collaborativestreaming of video content method according to one embodiment.

FIG. 10 illustrates a process flow of using collaborative streaming ofvideo content method to join/create a stream according to oneembodiment.

The figures depict various embodiments of the present invention forpurposes of illustration only. One skilled in the art will readilyrecognize from the following discussion that alternative embodiments ofthe structures and methods illustrated herein may be employed withoutdeparting from the principles of the invention described herein.

DETAILED DESCRIPTION

It is to be understood that the Figures and descriptions of the presentinvention have been simplified to illustrate elements that are relevantfor a clear understanding of the embodiments of the present invention,while eliminating, for the purpose of clarity, many other elements foundin a typical web-based video player and method of using the same. Thoseof ordinary skill in the art may recognize that other elements and/orsteps are desirable and/or required in implementing the presentinvention. However, because such elements and steps are well known inthe art, and because they do not facilitate a better understanding ofthe present invention, a discussion of such elements and steps is notprovided herein. The disclosure herein is directed to all suchvariations and modifications to such elements and methods known to thoseskilled in the art.

FIG. 1 is a block diagram of an environment 100 having a collaborativevideo streaming system 200 (also called a collaborative viewing system)according to one embodiment. As shown in FIG. 1, a plurality of clients110 a-110 n are connected to a video hosting website 130 via a computernetwork 120. A client 110 executes a web browser 112. The video hostingwebsite 130 comprises a video server 132, a video database 134 and auser information database 136. The video hosting website 130 alsocomprises a stream collaboration system 200. Many conventional features,such as firewalls, load balancers, application servers, failoverservers, site management tools, and so forth are not shown so as to moreclearly illustrate the features of the system.

The client 110 communicates with the video hosting website 130 via thecomputer network 120. The client 110 can be a personal computer (PC) inone embodiment, or a mobile handset or other electronic computingdevices in other embodiments. In some embodiments, the browser 112include a third party video player, e.g., the Flash player from AdobeSystems, Inc., or any other player adapted for the video file formatsused on the site 130. Typically, a user accesses a video from the site130 by browsing a catalog of videos, conducting searches on keywords,reviewing playlists from other users or the system administrator, e.g.,collections of videos forming channels, or viewing videos associatedwith particular user groups, e.g., communities. In some embodiments,browser 112 also accesses a video file indirectly, via an embedded videothat is accessed via an embedded hyperlink in a third-party website.

Users of the client 110 and browser 112 can upload content, which caninclude, for example, video, audio, or a combination of video and audio,to the site 130, browse media content stored at the site 130, andcollaboratively stream video content with other users at the site 130via the network 120. The uploaded content is processed and placed forstorage in the video database 134. This processing can include formatconversion, compression, metadata tagging, and other data processing. Insome embodiments, an uploaded content file is associated with theuploading user, and so the user's account record is updated in the userinformation database 136 as needed. In some embodiments, other datarelating to the user is also placed for storage in database 136. Forexample, a list of videos that have been viewed by the user in the lastten days is kept in the user information database 136.

The network 120 enables communications among the client 110 and thevideo hosting website 130. In one embodiment, the network 120 usesstandard communications technologies and/or protocols. Thus, the network120 can include links using technologies such as Ethernet, 802.11,integrated services digital network (ISDN), digital subscriber line(DSL), asynchronous transfer mode (ATM), etc. The network 120 may alsosupport mobile access using technologies such as Wideband Code DivisionMultiple Access (W-CDMA), CDMA200, Global System for MobileCommunications (GSM), General Packet Radio Service (GPRS), or similartechnologies. Similarly, the networking protocols used on the network120 can include multiprotocol label switching (MPLS), the transmissioncontrol protocol/Internet protocol (TCP/IP), the User Datagram Protocol(UDP), the hypertext transport protocol (HTTP), the simple mail transferprotocol (SMTP), the file transfer protocol (FTP), etc. The dataexchanged over the network 120 can be represented using technologiesand/or formats including the hypertext markup language (HTML), theextensible markup language (XML), etc. In addition, all or some of linkscan be encrypted using conventional encryption technologies such as thesecure sockets layer (SSL), Secure HTTP and/or virtual private networks(VPNs) or Internet Protocol security (IPsec). In another embodiment, theentities can use custom and/or dedicated data communicationstechnologies instead of, or in addition to, the ones described above.

For purposes of convenience and the description of one embodiment, themedia content uploaded and browsed by a user will be referred to a“videos” or “video files”, but no limitation on the types of mediacontent that can be uploaded and browsed are intended by thisterminology.

The video hosting website 130 allows users to upload videos to thewebsite 130, browse the videos stored in the website 130, andcollaboratively view video content in the website 130. In one embodimentas illustrated in FIG. 1, the video server 132 in the hosting website130 receives videos uploaded to the site 130 and stores them in thevideo database 134. The video database 134 may contain a plurality oflogical partitions internally and one partition is for video “streams.”The partition of the video database 134 for video streams may be furtherpartitioned into sub-partitions for currently active streams andinactive streams. Similarly, the user information database 136 cancontain partitions for user information associated with streams. Asuitable website 130 for implementation of the system is YOUTUBE; othervideo hosting sites are known as well, and can be adapted to operateaccording the teaching disclosed herein. The various servers areconventionally implemented, whether as a single piece of software orhardware or as multiple pieces of software or hardware. In general,functions described in one embodiment as being performed on the serverside can also be performed on the client side in other embodiments ifappropriate.

The stream collaboration system 200 provides users of the site 130 withan enhanced user experience of interacting with other users whilesharing videos. The stream collaboration system 200 comprises a streamcollaboration module 240 and a stream management module 260. A stream inthe context of the following description refers a group of videos whichare available for being collaboratively shared by users who join thestream. With streams, a user can create a viewing room in the site 130to watch videos of the streams and interact with others while viewingvideos. For example, users who join a stream can add videos from theirlist of favorite videos, playlists, or by pasting links into the streamcreated by a stream owner, i.e., stream creator. Furthermore, users whojoin a stream are automatically members of a chat room associated withthe stream. As users watch videos from the stream, they can chat in realtime about the videos they are watching (or any other topics). In oneembodiment, users view the same video at the same time. In oneembodiment, users view different videos of the stream at the same time.

FIG. 2 is a web page implementing an exemplary interface ofcollaborative video content by the stream collaboration system 200according to one embodiment. The exemplary interface is a defaultinterface of the stream collaboration system 200 displayed to a user whologs into the collaboration system 200. The interface includes a streamcollaboration display window 210, which displays a portion of currentlyactive streams, 202 a-202 f, in the collaboration system 200. An activestream 202 displayed comprises stream information 204 and a plurality ofthumbnails of videos 206 in the stream 202. The stream information 204includes a title of the stream, number of users that belong to thestream, number of the currently available videos in the stream andstream owner information. Taking the stream 202 a as an example, thetitle of the stream 202 a is “Video Stream-1” chosen by the streamowner. The stream 202 a currently has 14 participants and 18 videos. Thethumbnails 206 a represent the first three videos of the stream 202 aaccording to a playlist of the stream 202 a. The stream 202 a is createdby StreamOwner1. A user can join a stream 202 by clicking the streamtitle of the selected stream 202, or follow “How do I use Streams?” link214 which automatically brings the user to a stream information andtools web page. A user can also preview the sample videos of the stream202 by clicking the video thumbnails 206 of the stream 202. A user canalso check the profile of a stream creator by clicking the streamcreator's name, which automatically brings the user to the streamowner's profile page. Furthermore, a user can create his/her own streamto share videos and interact with other participants of his/her streamby following “Create your own Stream” 208 link which provides the userwith stream creation tool. Once a user chooses to join a stream 202, theuser is able to watch videos of the stream together with other streamparticipants, add his/her videos to the stream 202, interact with otherstream participants, such as chatting with others while watching videosof the stream. Further detail on stream collaboration is presented inconnection with the discussion of FIGS. 4, 5, 6 and 7.

To manage streams in the stream collaboration system 200, the streamcollaboration module 240 manages stream creation, monitors user events,such as uploading videos, joining a selected stream, and updates streamcollaboration system 200. For example, in one embodiment, the streamcollaboration module 240 manages up to 600 active streams at one time inthe stream collaboration system 200. An active stream can stream videocontent live for up to 2 hours. A stream is deleted by the streamcollaboration module 240 three days after its creation, or if there hasbeen no activity in the stream for a predetermined period of time.

FIG. 3 is a block diagram illustrating modules within a streamcollaboration module 240 according to one embodiment. The streamcollaboration module 240 includes a user events monitor 242 and a streamcreation module 244. Other embodiments can have different and/oradditional modules than the ones shown in the figure. In addition, thefunctions can be distributed among the modules in a different mannerthan is described here.

The user events monitor 242 monitors user initiated events in the streamcollaboration system 200 and communicates with the stream creationmodule 244 and the stream management module 260. In one embodiment, theuser events to be monitored by the events monitor 242 include userinitiated events related to browsing currently active streams, joining aselected stream, previewing videos of a stream, checking streamcreator's profile, creating a stream and sending feedbacks to thecollaboration system 200. Other embodiments can have different and/oradditional user initiated events than the ones described here.

Referring now back to FIG. 2, a user logs into the collaboration system200 and gets a display window 210 of currently active streams to browse.In one embodiment, in response to user clicking the title of a selectedstream for joining the selected stream, the user events monitor 242records the selection of the stream and notifies the stream managementmodule 260 for such event. In another embodiment, a user can join astream by following links from emails or instant messages sent fromothers. In such cases, the event monitor 242 records the event inresponse to user clicking the links in the emails or instant messagesand notifies the stream management module 260 for such event. Inresponse to user clicking “Create your own stream” link 208 in FIG. 2,the event monitor 242 records the event and notifies the stream creationmodule 244 for such event. In response to user clicking a videothumbnail, the event monitor 242 notifies the stream management module260 to launch a video player to play the selected video.

The stream creation module 244 allows a user to create a stream. In oneembodiment, a user can create a stream by following “Create your ownstream” link 208 in FIG. 2 after logging into the stream collaborationsystem 200. In another embodiment, a user can create a new stream whilewithin a stream since a stream can have a link that allows a user tocreate his/her own stream while interacting with other users within thestream. In either case, in one embodiment, a user is presented aneasy-to-follow stream creation web form with a plurality of fields to befilled in by the user. The fields of the stream creation form aredesigned to manage videos to be added to the stream and users who jointhe stream. For example, videos of a stream can be flagged before beingdeleted by the stream creator. Users who join a stream, i.e., streamusers, can be suspended or kicked off the stream for inappropriatebehavior. Only authorized stream users can add videos to a stream. Thestream creation module 244 updates the stream collaboration module 240for each newly created stream. The stream collaboration module 240, inturn, updates the list of currently active streams, related partitionsin the video database 134 and user database 136 if necessary. Forexample, the stream creation module 244 deletes expired and/or inactivestreams, and searches video database 134 and user information database136 for videos to be added to a stream and users who join a stream.

Referring now to FIG. 8A, an exemplary interface for stream creation isillustrated according to an embodiment. The exemplary interface includesa stream creation form to be filled by a stream creator. The streamcreation form includes a plurality of fields, such as stream name 812and background image 814. In one embodiment, a background image ishosted from an external server other than the video server 132 of FIG. 1or the server for implementing the stream collaboration system 200. Astream owner needs to provide the complete URL for the location of thebackground image to be used, for example,“http://www.example.com/image.gif”. The stream creation form alsoincludes a welcome message field 816, which displays a welcome messagefrom a stream owner when a user joins the stream. Other fields to befilled are maximum number of users 818 allowed to join the stream,number of flags needed to remove a video 820 for stream videomanagement, and types of users allowed to add videos to the stream 824.In one embodiment, by default, everyone who joins the stream can addvideos to the stream created by the stream owner. Other embodiments mayonly allow authorized stream users, such as stream creator, to addvideos to a stream. The “Allow Racy Videos in Stream” checkbox 822provides an option to add racy videos to a stream if checked. In oneembodiment, only stream name field 812 is mandatory to be filled inorder to create a stream and the rest of the fields of the streamcreation form take default values, such as a null value, i.e., blankfield value. In response to user clicking “Save Stream Info” bar 826,the stream creation form with filled field values is sent to the streamcreation module 244 for stream creation. Once a stream is created, thestream owner becomes the first user of his/her own stream.

FIG. 8B is the corresponding stream creation form of FIG. 8A with samplefields values. For example, the filled stream creation form represents astream called “test” 812, with no background image 814. The welcomemessage of the stream “test” is “Welcome to my stream!” 816. Up to 55users 818 including the stream owner are allowed to participate instreaming video content in “test” stream. A video of “test” stream isallowed to be flagged once 820 before being deleted from the stream. Noracy videos are allowed to be added to the stream, i.e., the unchecked“Allow Racy Videos in Stream” 822. Currently, every stream user of“test” is allowed to add his/her videos to the stream.

Once a stream is created, the stream collaboration system 200 creates avirtual room in the video hosting website 130 to allow multiple users tocollaboratively share videos. In turn, such virtual room with its usersbecomes a stream community for collaboratively sharing videos. FIG. 4 isa block diagram illustrating modules within a stream management module260 according to one embodiment. In one embodiment, the streammanagement module 260 includes a stream video management module 262 tomanage videos of a stream, a stream community management module 264 tomanage stream community, such as managing the chatting room associatedwith a stream and stream users.

FIGS. 5A and 5B illustrate an exemplary interface of a stream communityto be managed by the stream management module 260. FIG. 5A is a welcomepage of a stream called “Video Stream Pilot”, created by PilotOwner. Theinterface has a welcome message display window 502, currently displayingthe welcome message from the stream creator, PilotOwner. In response touser clicking “OK” button, the stream management module 260 displays thestream “Video Stream Pilot” in ready mode for collaborative streaming asillustrated in FIG. 5B.

In one embodiment illustrated in FIG. 5B, the stream “Video StreamPilot” has two major streaming collaboration areas: video viewing area504 and stream community chatting room 508. The video viewing area 504displays the video currently being viewed by the stream user, i.e., “MyGRANDMAS CATS”. The video viewing in the viewing area 504 is enabled bya media player. The stream community chatting room 508 allows streamusers to chat in real-time. The stream community illustrated in FIG. 5B,in one embodiment, also includes stream videos management areas 506 and514, stream users management area 510, stream library 512, new streamcreation 516 and stream expansion 518. The URL of the stream isdisplayed in stream URL window 520. Further details of stream videosmanagement, stream community management are further described inconjunction with the description of FIGS. 6, and 7.

In one embodiment, the stream video management module 262 allows a videoof a stream to be viewed, commented, and rated by all users who join thestream. The stream video management module 262 also allows a video to beadded to the stream by authorized stream users through a plurality ofmeans. For example, an authorized stream user can add a video selectedfrom a video search, from the user's own video collections, such as “MyVideos” and “My Favorites” folders, or pasting the URL of the video tobe added. The stream video management module 262 also allows a video ofa stream to be deleted by authorized users of the stream. An exemplaryinterface of implementing stream video management module 262 is furtherdescribed in conjunction with the description of FIG. 6.

As described above, a stream refers a group of videos which areavailable for being collaboratively viewed by users who join the stream.The videos of a stream are managed by the stream video management module262. FIG. 6 is an exemplary interface illustrating an implementation ofmanaging videos in a stream according to one embodiment. The interfaceincludes a video display area 602, which is currently playing a videocalled “MY GRANDMAS CATS” 610. The video currently being played at 602has a plurality of video management tools associated with it. Forexample, the thumb-up icon 612 and thumb-down icon 614 allow a streamuser to rate the video being viewed as “good” and “bad”, respectively.The deletion icon 616 allows authorized stream users, such as streamowner and stream administrator, to delete videos. A video of a stream isdeleted, in one embodiment, due to low rating from the stream users. Inanother embodiment, a video of a stream may be deleted due toinappropriate content. Area 620 displays the current playlist of acurrent user. The user selects his playlist from the videos in thestream. The videos will play for the user in the order specified by theplaylist. In one embodiment, all users share the same playlist. A videoin the playlist may have a thumbnail icon 622 representing the videocontent, a title 624, the owner of the video and a management tool 628.Area 630 includes a group of ways to add video to the stream and adisplay area to show information of a plurality of videos to be added.

Taking the current playlist illustrated in FIG. 6 as an example, thecurrent playlist includes two videos, “Kellie Pickler—I Wonder” and “AFun Medley Video”. The first video on the playlist, “Kellie Pickier—IWonder”, has a thumbnail icon 622 displayed on the left of the title624, added by anniebeth30 626, who happens to be the stream creator. Thedeletion icon 628 allows this video to be deleted from the currentplaylist by an authorized stream user. The next video on the playlist,“A Fun Medley Video”, is added by the stream user “user1”. To add avideo to the stream “Video Stream Pilot”, a stream user may search thevideo hosting site 130 using the video searching tool 632. In oneembodiment, a video search may be further refined by relevance, dateadded to the hosting site 130 or views. A stream user may also addvideos from his/her own video collections, such as “My Videos” 634, or“My Favorites” 626, to the stream. Alternatively, a stream user maypaste a URL 630 of the video to be added in the area box next to“Search” button. The video referenced by the URL may reside in athird-party website, or from another active stream on the video hostingsite 130.

Once a stream owner creates a stream, the stream owner becomes the firstcommunity member of the stream. Other users become a stream communitymember by joining the stream voluntarily, or being invited by the streamowner. Together with the stream owner, these community members form astream community associated with the stream for collaborativelystreaming activities. A stream community may include a plurality ofstream users up to the maximum number of stream users specified duringthe stream creation, i.e., the “Maximum # of Users” field 818 in FIG. 8.A stream community may have a set of rules to manage its communitymembers, i.e., stream users. A stream owner can invite others to jointhe stream. A stream community may include a stream library, which holdsthe videos added by the stream users to the stream.

FIG. 7A illustrates a web page implementing an exemplary interface for astream library of a stream according to one embodiment. A stream libraryvisually represents all videos of the stream. A video in a streamlibrary is presented with a thumbnail of the video content, a title,length of time, owner of the video, number of votes from the communitynumbers. Depending on the number of votes a video gets, the video can beadded to different location of the library, e.g., head of the library,middle or end of the library. In one embodiment, videos are added to thelibrary according to the number of votes they get from the highest tothe lowest votes. A video in a library may also have a “play” buttonembedded within the thumbnail that allows a stream user instantly playsthe selected video. If a stream library is larger than a display screencan present, tools are provided to search through the stream library.

In the illustrated interface, the stream library of the stream “VideoStream Pilot” visually represents the videos added by the three streamcommunity members in the display area 710. Currently, total 39 videos714 are in the library, and 7 of them are currently displayed in thedisplay area 710. The “prey” and “next” buttons 716 allows a user to goback and forth to have a display screen load of videos to be displayed.A “collapse” button 712 hides details of videos in the library and onlyincludes total number of videos information 714. Alternatively, the“collapse” button 712 can change to “expand” to resume detailed display.Taking the current second video 714, “Kellie Pickler—I Wonder”,displayed in area 710 as an example, it is represented by a thumbnailwith a “play” button symbol in the middle. It lasts 3 minutes 56seconds, added by the stream owner anniebeth30, and currently has 1 votefrom the community.

As described above, a user other than a stream creator may join a streamvoluntarily by clicking a selected stream title after logging into thecollaboration system 200. A stream owner can also invite others to joinhis/her stream. FIG. 7B illustrates a web page implementing an exemplaryinterface for inviting other users to a stream according to oneembodiment. The interface, in one embodiment illustrated in FIG. 7B, hasan instruction page 722 from the collaboration system 200 after clickingthe “invite” button 724. A stream owner can send a URL link of thestream to a friend via email, IM or other communications means. In thiscase, the URL for the stream, i.e.,“http://youtube.comstream?s=1596063745”, is listed in the instructionpage 722. “s=1596063745” is an identification automatically generated bythe collaboration system 200 when the stream is created and is used toidentify and locate the stream in the video database 134. Similarly, astream user may follow the similar steps described above to inviteothers to join the stream.

Stream community members can comment in real-time on a video currentlybeing viewed or on any topics on the community members want to engage.In one embodiment, a stream community management module 264 manages achatting room associated with the stream and stream users. A user mayjoin a stream and its associated chat room separately. In anotherembodiment, users who join a stream are automatically members of thechat room associated with the stream. To manage stream community membersin a chat room, in one embodiment, a stream creator can kick a user outof the stream temporarily for a predetermined period of time forimproper behavior. In another embodiment, a stream creator can ban othercommunity members permanently for improper behavior. Other embodimentsmay allow a stream creator to select other community members and givethem administrator rights to help them manage the room. Alternatively, acommunity member may flag another community member for inappropriatebehavior to the stream creator, but only the stream creator can actuallyban the flagged user.

FIG. 7C illustrates a web page implementing an exemplary interface formanaging real-time video commenting in a stream according to oneembodiment. The stream community chat room has a chatting/commentingarea 730. An area 738 is where a community member enters his/hercontribution to the commenting/chatting. Clicking “Post” button 740instantly pushes the text entered by a community member. An area 750displays community member information. A community member has a uniquename 756, such as “user2”. Special community members, such as streamcreator 754, are individually labeled. A thumbnail of a video beingwatched by a community member is placed next to his/her name. A tool 752allows a stream creator to hide videos or text messages in the chat roomfrom a community member. For example, the community user 734, “user2”,is currently watching “My Grandmas Cats”, indicated by the thumbnail736, and user2 just posted a message “test” 732 in the chat room.

To maintain order in the chat room, a stream creator can list all thecommunity members in the room, set their status and choose actions totake. FIG. 7D illustrates an exemplary interface for managing users in astream according to one embodiment. The interface has a management toolthat allows the stream owner to list all users (excluding the streamcreator) 742. In this case, only one community member, “user1”, is inthe community. User1's status 744 is “Normal”. The stream creatorchooses 746 to “Ban from stream” action on User1.

FIG. 9 illustrates a general process flow of using collaborativestreaming of video content method according to one embodiment. Otherembodiments perform different and/or additional steps than the onesdescribed here. Moreover, other embodiments perform steps in differentorders.

Initially, the stream collaboration system 200 launches 902 the videostreaming application when a user logs into the system. The system 200displays 904 a group of currently active streams by the streamcollaboration module 240. Additionally, the stream collaboration module240 may also display links to stream creation and/or streamparticipation tools page. The system 200 receives 906 user commands,such as joining a stream, creating a stream, chatting with other streamcommunity members, playing a video of a stream and so on. In response908 to user's command, the system 200 handles the user commands by thestream management module 260.

FIG. 10 illustrates a process flow of using collaborative streaming ofvideo content method to join/create a stream according to oneembodiment. Other embodiments perform different and/or additional stepsthan the ones described here. Moreover, other embodiments perform stepsin different orders. For example, a user may request to create a streamfirst, and in response, the system handles the user's stream creationcommand first.

Initially, the stream collaboration system 200 launches 1002 the videostreaming application when a user logs into the system. The system 200displays 1004 a group of currently active streams by the streamcollaboration module 240. Additionally, the stream collaboration module240 may also display links to stream creation and/or streamparticipation tools page. In one embodiment illustrated in FIG. 10, auser desires to join 1006 a selected stream. In response to such usercommand, the stream collaboration module 240 adds 1008 the user to theselected stream, and the stream management module 260 manages 1010 theuser's streaming activities. If the user desires to create 1012 his/herown stream, the system 200 handles 1014 the user stream creationrequest. For example, the system 200 presents a stream creation form tothe user with required fields to be filled by the user. In response touser's clicking “Save Streaming Info”, the system 200 creates a streambased on the user input. If user has other commands, such as playing avideo of a stream, the system handles 1016 such user commands withappropriate modules, such as launching a video player to play theselected video.

Reference in the specification to “one embodiment” or to “an embodiment”means that a particular feature, structure, or characteristic describedin connection with the embodiments is included in at least oneembodiment of the invention. The appearances of the phrase “in oneembodiment” or “a preferred embodiment” in various places in thespecification are not necessarily all referring to the same embodiment.

Some portions of the above are presented in terms of methods andsymbolic representations of operations on data bits within a computermemory. These descriptions and representations are the means used bythose skilled in the art to most effectively convey the substance oftheir work to others skilled in the art. A method is here, andgenerally, conceived to be a self-consistent sequence of steps(instructions) leading to a desired result. The steps are thoserequiring physical manipulations of physical quantities. Usually, thoughnot necessarily, these quantities take the form of electrical, magneticor optical signals capable of being stored, transferred, combined,compared and otherwise manipulated. It is convenient at times,principally for reasons of common usage, to refer to these signals asbits, values, elements, symbols, characters, terms, numbers, or thelike. Furthermore, it is also convenient at times, to refer to certainarrangements of steps requiring physical manipulations of physicalquantities as modules or code devices, without loss of generality.

It should be borne in mind, however, that all of these and similar termsare to be associated with the appropriate physical quantities and aremerely convenient labels applied to these quantities. Unlessspecifically stated otherwise as apparent from the following discussion,it is appreciated that throughout the description, discussions utilizingterms such as “processing” or “computing” or “calculating” or“determining” or “displaying” or “determining” or the like, refer to theaction and processes of a computer system, or similar electroniccomputing device, that manipulates and transforms data represented asphysical (electronic) quantities within the computer system memories orregisters or other such information storage, transmission or displaydevices.

Certain aspects of the present invention include process steps andinstructions described herein in the form of a method. It should benoted that the process steps and instructions of the present inventioncan be embodied in software, firmware or hardware, and when embodied insoftware, can be downloaded to reside on and be operated from differentplatforms used by a variety of operating systems.

The present invention also relates to an apparatus for performing theoperations herein. This apparatus may be specially constructed for therequired purposes, or it may comprise a general-purpose computerselectively activated or reconfigured by a computer program stored inthe computer. Such a computer program may be stored in a computerreadable storage medium, such as, but is not limited to, any type ofdisk including floppy disks, optical disks, CD-ROMs, magnetic-opticaldisks, read-only memories (ROMs), random access memories (RAMs), EPROMs,EEPROMs, magnetic or optical cards, application specific integratedcircuits (ASICs), or any type of media suitable for storing electronicinstructions, and each coupled to a computer system bus. Furthermore,the computers referred to in the specification may include a singleprocessor or may be architectures employing multiple processor designsfor increased computing capability.

The methods and displays presented herein are not inherently related toany particular computer or other apparatus. Various general-purposesystems may also be used with programs in accordance with the teachingsherein, or it may prove convenient to construct more specializedapparatus to perform the required method steps. The required structurefor a variety of these systems will appear from the description below.In addition, the present invention is not described with reference toany particular programming language. It will be appreciated that avariety of programming languages may be used to implement the teachingsof the present invention as described herein, and any references belowto specific languages are provided for disclosure of enablement and bestmode of the present invention.

While the invention has been particularly shown and described withreference to a preferred embodiment and several alternate embodiments,it will be understood by persons skilled in the relevant art thatvarious changes in form and details can be made therein withoutdeparting from the spirit and scope of the invention.

Finally, it should be noted that the language used in the specificationhas been principally selected for readability and instructionalpurposes, and may not have been selected to delineate or circumscribethe inventive subject matter. Accordingly, the disclosure of the presentinvention is intended to be illustrative, but not limiting, of the scopeof the invention.

We claim:
 1. A computer-implemented method for collaboratively viewingvideo content by a plurality of users in a streaming community, themethod comprising: creating a streaming community environment, theenvironment including a manager, a plurality of users, a user interfaceat least part of which is common to the plurality of users, andthumbnails representing a plurality of videos contributed to thecommunity by the manager and one or more of the plurality of the usersin the community, the contributed videos forming a stream; displaying alist of the plurality of contributed videos to the plurality of users inthe community; responsive to receiving requests from one of the users toview the at least one videos in the stream, displaying the requestedvideos to the users; and responsive to receiving chat messages from theusers in the community, displaying the chat messages to the plurality ofusers in a community chat room included in the user interface common tothe plurality of users, each chat message displayed concurrently with anidentification of the user from which the chat message was received anda thumbnail representing a video of the video stream being displayed tothe user when the chat message was received.
 2. The method of claim 1,further comprising: receiving a rating for a displayed video from one ofthe users in the community.
 3. The method of claim 1, furthercomprising: rejecting a video to be added to the video stream based onvideo content, the video being contributed by one of the plurality ofthe users.
 4. The method of claim 1, further comprising: determiningwhether a contributed video is appropriate to be viewed by a subset ofthe plurality of the users based on video content.
 5. The method ofclaim 1, further comprising: deleting one or more contributed videosfrom the video stream in response to a video's rating reaching apredetermined threshold.
 6. The method of claim 1, further comprising:blocking one or more of the plurality of the users from viewing acontributed video of the streaming community.
 7. The method of claim 1,further comprising: blocking one or more of the plurality of the usersfrom viewing the chat message in the community chat room.
 8. The methodof claim 1, further comprising: temporarily removing a plurality of theusers from the streaming community.
 9. The method of claim 1, furthercomprising: permanently removing a plurality of the users from thestreaming community.
 10. A computer system for collaboratively viewingvideo content by a plurality of users in a streaming community, thesystem comprising: a non-transitory computer-readable storage mediumstoring executable computer modules, comprising: a streaming communitycreation module configured to create a streaming community environment,the environment including a manager, a plurality of users, a userinterface at least part of which is common to the plurality of users,and thumbnails representing a plurality of videos contributed to thecommunity by the manager and one or more of the plurality of the usersin the community, the contributed videos forming a stream; a displayingmodule configured to display a list of the plurality of contributedvideos to the plurality of users in the community; and a communicationmodule configured to: responsive to receiving requests from the users toview the videos in the stream, display the requested videos to theusers, different videos simultaneously displayed to different viewers;responsive to receiving chat messages from the users in the community,display the chat messages concurrently to the plurality of users in acommunity chat room included in the user interface common to theplurality of users, each chat message displayed with an identificationof the user from which the chat message was received and a thumbnailrepresenting a video of the video stream being displayed to the userwhen the chat message was received.
 11. The system of claim 10, whereinthe communication module is further configured to: receive a rating fora displayed video from one of the users in the community.
 12. The systemof claim 10, further comprising: a collaboration module configured toreject a video to be added to the video stream based on video content,the video being contributed by one of the plurality of the users. 13.The system of claim 10, further comprising: a collaboration moduleconfigured to determine whether a contributed video is appropriate to beviewed by a subset of the plurality of the users based on video content.14. The system of claim 10, further comprising: a collaboration moduleconfigured to delete one or more contributed videos from the videostream in response to a video's rating reaching a predeterminedthreshold.
 15. The system of claim 10, further comprising: acollaboration module configured to block one or more of the plurality ofthe users from viewing a contributed video of the streaming community.16. The system of claim 10, further comprising: a collaboration moduleconfigured to block one or more of the plurality of the users fromviewing the chat message in the community chat room.
 17. The system ofclaim 10, further comprising: a collaboration module configured totemporarily remove a plurality of the users from the streamingcommunity.
 18. The system of claim 10, further comprising: acollaboration module configured to permanently remove a plurality of theusers from the streaming community.
 19. The computer system of claim 10,wherein different chat messages from different users simultaneouslyviewing different videos are displayed with different thumbnailsrepresenting the different videos being displayed to the users when thechat messages were received.
 20. The computer system of claim 10,wherein different chat messages from different users simultaneouslyviewing different videos are displayed concurrently.
 21. Anon-transitory computer-readable storage medium containing executablecomputer program instructions for collaboratively viewing video contentby a plurality of users in a streaming community, the computer programinstructions comprising instructions for: creating a streaming communityenvironment, the environment including a manager, a plurality of users,a user interface at least part of which is common to the plurality ofusers, and thumbnails representing a plurality of videos contributed tothe community by the manager and one or more of the plurality of theusers in the community, the contributed videos forming a stream;displaying a list of the plurality of contributed videos to theplurality of users in the community; responsive to receiving requestsfrom the users to view the videos in the stream, displaying therequested videos to the users, different videos simultaneously displayedto different viewers; and responsive to receiving chat messages from theusers in the community, displaying the chat messages to the plurality ofusers in a community chat room included in the user interface common tothe plurality of users, each chat message displayed concurrently with anidentification of the user from which the chat message was received anda thumbnail representing a video of the video stream being displayed tothe user when the chat message was received.
 22. The computer-readablestorage medium of claim 21, further comprising instructions for:receiving a rating for the displayed video from one of the users in thecommunity.